package com.heima.controller;

import com.heima.pojo.Role;
import com.heima.pojo.dto.PageUserDto;
import com.heima.common.PageResult;
import com.heima.pojo.vo.UserAddVo;
import com.heima.pojo.vo.UserVo;
import com.heima.service.UserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/user-service")
@Slf4j
@RequiredArgsConstructor
public class UserController {

    private final UserService userService;

    /**
     * 查询用户列表
     * @param pageUserDto
     * @return
     */
    @GetMapping("/user/search")
    public PageResult<UserVo> search(PageUserDto pageUserDto) {
        return userService.search(pageUserDto);
    }

    /**
     * 查询角色列表
     * @return
     */
    @GetMapping("/role")
    public List<Role> saveRole() {
        return userService.getRole();
    }

    /**
     * 新增用户
     * @param userAddVo
     * @return
     */
    @PostMapping("/user")
    public Boolean saveUser(@RequestBody UserAddVo userAddVo) {
        return userService.saveUser(userAddVo);
    }

    /**
     * 修改用户
     */
    @PutMapping("/user/{userId}")
    public Boolean updateUser(@PathVariable Integer userId, @RequestBody UserAddVo userAddVo) {
        return userService.updateUser(userId, userAddVo);
    }

    /**
     * 删除用户
     */
    @DeleteMapping("/user/{userId}")
    public Boolean deleteUser(@PathVariable Integer userId) {
        log.info("删除用户信息");
        return userService.removeById(userId);
    }

}
